﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntGuayasSLA.BL.Listas;
using Ext.Net;
using EntGuayasSLA.BL;
using System.IO;
using System.Text;
using EntGuayasSLA.BL.Licenciamiento;


namespace EGuayas.Web.Auditoria.admin.Global
{
    public partial class pgDetalle : pgBase
    {
        
       
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
            if (!X.IsAjaxRequest)
            {              
                var ExpedienteId = Request["idExp"];                  
                Expediente expediente = Expediente.GetEditableRoot(Guid.Parse(ExpedienteId));                   
                this.txtNombre.Text  = expediente.Nombre;
                this.txtDescrip.Text = expediente.Descripcion;
                wucLickObligaciones wucLic = (wucLickObligaciones)this.wuc_obliga_licencia001.UserControls[0];
                ExpedienteAuditoria objExpAud = ExpedienteAuditoria.GetEditableRoot(ExpedienteId);
                if (objExpAud.Codigo != "")
                {
                    this.hddIdExpAud.SetValue(objExpAud.Id.ToString());
                    this.txtCodigo.Text = objExpAud.Codigo;
                    this.txtCodigo.ReadOnly = true;
                    this.btnSave.Hide();
                    wucLic.EnableLinkObligaciones(true);
                    wucLic.SetIdExpedienteAuditoria(objExpAud.Id.ToString());
                }
                else
                {
                    int countCodigoLeng = expediente.Codigo.Length >= 16 ? 16 : expediente.Codigo.Length;
                    this.txtCodigo.FieldLabel = "Código:" + expediente.Codigo.Substring(0, countCodigoLeng);
                    this.txtCodigo.ReadOnly   = false;
                    this.btnSave.Show();
                    wucLic.EnableLinkObligaciones(false);
                }
            }//if (!X.IsAjaxRequest)
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void btnSave_Click(object sender, DirectEventArgs e)
        {
            try
            {
               
                string gridJson = e.ExtraParams["prmValues"];
                var data = JSON.Deserialize<Dictionary<string, string>>(gridJson);
                ExpedienteAuditoria objExpAud = ExpedienteAuditoria.NewEditableRoot();
                objExpAud.Id = System.Guid.NewGuid();
                objExpAud.ExpedienteId = Request["idExp"];
                objExpAud.Codigo = data["Codigo"];
                objExpAud.Estado = Valores.Codigo_Estado_Aud_Proceso;
                objExpAud.Tipo = Valores.Codigo_Tipo_Aud_Interno;
                objExpAud.Save();
                btnSave.Disable();
                wucLickObligaciones wucLic = (wucLickObligaciones)this.wuc_obliga_licencia001.UserControls[0];
                wucLic.EnableLinkObligaciones(true);
                wucLic.SetIdExpedienteAuditoria(objExpAud.Id.ToString());
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        
        protected void OnObligacionAdded(object sender, ComponentAddedEventArgs e)
        {
            try
            {
            Ext.Net.Panel panel = (Ext.Net.Panel)e.Control;         
            SetCustomConfig(panel, panel.Parent.ID + "_expAud", this.hddIdExpAud.Value.ToString());
            SetCustomConfig(panel, panel.Parent.ID + "_exp", Request["idExp"]);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

    }
}